/**
 * 通用接口返回类型 有data
 */
type ApiDataRecord<T> = {
  /** 接口状态 */
  code: number,
  /** 提示信息 */
  msg: string,
  /** 返回数据data */
  data: T,
  /** 其他返回值 */
  [propName: string]: any,
}

/**
 * 通用接口返回类型 有rows 分页
 */
type ApiRowsRecord<T> = {
  /** 接口状态 */
  code: number,
  /** 提示信息 */
  msg: string,
  /** 返回数据rows */
  rows: T,
  /** 表格总条数 */
  total: number,
  /** 其他返回值 */
  [propName: string]: any,
}


/**
 * 通用接口返回类型 无data
 */
type ApiRecord = {
  /** 接口状态 */
  code: number,
  /** 提示信息 */
  msg: string,
  /** 其他返回值 */
  [propName: string]: any,
}

interface ColumnRecord {
  /** 自定义参数 */
  params?: object;
  /** 页数 */
  pageNum?: number;
  /** 分页大小 */
  pageSize?: number;
  /** 序号 */
  colNo?: number;
  /** 操作 */
  operate?: string;
}

/**
 * 表格列显隐
 */
interface ColumnVisibleRecord {
  /** 选项Label */
  label: string;
  /** 显隐 */
  visible: boolean;
}

/**
 * 表格列选项
 */
interface TableColumnsRecord {
  [propName: string]: ColumnVisibleRecord;
}

/**
 * 网络请求参数
 */
interface RequestOptions {
  /** 接口地址 */
  url: string;
  /** 请求的参数 */
  data?: object | string;
  /** 请求头 */
  header?: object;
  /** 请求方式 */
  method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'CONNECT' | 'HEAD' | 'OPTIONS' | 'TRACE';
  /** 超时时间，单位 ms */
  timeout?: number;
}

